package com.biboheart.adapter.support.enums;

import com.biboheart.adapter.support.BaseEnum;
import com.biboheart.adapter.support.EnumValueObject;

import java.util.ArrayList;
import java.util.List;

public enum DelimitEnum implements BaseEnum<String, String> {
    DELIMIT_SLP("(", "左括号"),
    DELIMIT_SRP(")", "右括号"),
    DELIMIT_COM(",", "逗号"),
    DELIMIT_SEM(";", "分号"),
    ;
    private final String code;
    private final String desc;

    DelimitEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    @Override
    public String code() {
        return code;
    }

    @Override
    public String desc() {
        return desc;
    }

    public static DelimitEnum getDelimit(String code) {
        DelimitEnum[] delimitEnums = values();
        for (DelimitEnum delimitEnum : delimitEnums) {
            if (delimitEnum.code().equals(code)) {
                return delimitEnum;
            }
        }
        return null;
    }

    public static boolean contains(String code) {
        DelimitEnum[] delimitEnums = values();
        for (DelimitEnum delimitEnum : delimitEnums) {
            if (delimitEnum.code().equals(code)) {
                return true;
            }
        }
        return false;
    }

    public static List<EnumValueObject<String, String>> list() {
        List<EnumValueObject<String, String>> list = new ArrayList<>();
        for (DelimitEnum delimitEnum : values()) {
            list.add(new EnumValueObject<>(delimitEnum.code(), delimitEnum.desc()));
        }
        return list;
    }
}
